Azure Search
- Part 2 (關於 Index)Azure Search
用來儲存資料(document或是其他結構)的方式;Azure Search
Index 的欄位類型欄位類型
類型 | Nullable | Default | 說明 |
---|---|---|---|
Edm.String | Nullable | null | 可選擇性予以 Token 化以供進行全文檢索搜尋 (斷字、詞幹分析等) 的文字。 |
Collection(Edm.String) | Not Nullable | Empty('[]') | 可選擇性予以 Token 化以供進行全文檢索搜尋的字串清單。 理論上,集合中的項目數沒有上限,但集合的承載大小有 16 MB 的上限。 |
Edm.Boolean | Nullable | null | true/false 。 |
Edm.Int32 | Nullable | null | 32 位元整數值。 |
Edm.Int64 | Nullable | null | 64 位元整數值。 |
Edm.Double | Nullable | null | 雙精度數值資料。 |
Edm.DateTimeOffset | Nullable | null | 以 OData V4 格式 (例如 yyyy-MM-ddTHH:mm:ss.fffZ 或 yyyy-MM-ddTHH:mm:ss.fff[+/-]HH:mm) 表示的日期時間值。 |
Edm.GeographyPoint | Nullable | null | 地理資訊。 |
其他類型
類型 | 說明 |
---|---|
Edm.GeographyPolygon | 描述地球上的多邊形區域,無法使用在 Document 欄位,可能用來證明 geo.intersects 函數 |
Azure Search
Index 的欄位屬性可用來指定使用欄位的方式
欄位屬性
屬性 | 說明 |
---|---|
Key | 字串,提供每一份文件的唯一識別碼,用於查閱文件。 每個索引必須有一個索引鍵。 只有一個欄位可以做為索引鍵,而且其類型必須設定為 Edm.String。 |
Retrievable | 指定搜尋結果中是否可傳回某欄位。 |
Filterable | 允許欄位用於篩選查詢。 |
Sortable | 允許查詢使用此欄位排序搜尋結果。 |
Facetable | 允許欄位用於使用者自我引導篩選的 多面嚮導覽 結構中。 通常,欄位若包含您可以用來將多份文件群組在一起的重複值 (例如,落在單一品牌或服務類別目錄下的多份文件),最適合做為 Facet。 |
Searchable | 將欄位標記為可供全文檢索。 |
詳細資料Create Index (Azure Search Service REST API)
中英文內容看起來差異滿大的,都先列上來,至少有問題也比較好查
Index Attributes
Attribute | Description |
---|---|
name | 欄位名稱 |
type | 欄位的資料類型 |
searchable | 用來標記欄位可用於全文檢索。需要在建立 index 進行斷詞分析.Edm.String or Collection(Edm.String) 預設即是 searchable .其他類型的欄位是無法標記為 searchable 。 Note: searchable 欄位會耗損額外的 index 空間,因為 Azure Search 會需要為全文檢索儲存較多的版本資料.如果想要節省空間或是不需要搜尋該欄位,可以把searchable 設成 false. |
filterable | 將欄位標記成可使用 $filter 查詢. filterable 與 searchable 不同在字串的處理. filterable 中的 Edm.String or Collection(Edm.String) 類型,不需要經過斷詞分析,所以只支援完全符合. 所以欄位預設都是 filterable . |
sortable | 預設情況下系統會依分數來排序,但使用者會想要依欄位來排序,除了 Collection(Edm.String) 無法 sortable .其他欄位預設皆是 sortable . |
facetable | 一般用在呈現各類別的內容命中次數.除 Edm.GeographyPoint 無法使用,其他欄位預設都是 facetable . Note: Edm.String 是 filterable , sortable , facetable 長度最長不能超過 32 kb.這是因為 Azure Search 有單一搜尋名詞 32 kb 的限制.如果需要儲存更多文字,就需要手動將 filterable , sortable , facetable 設定成 false . Note: 如果 searchable ,filterable , sortable , facetable 沒有一個被設定成 true ,代表這個欄位就是未納入 index 中.適合用來設定在需要出現在搜尋結果但不需要是搜尋條件的欄位上.從 index 排除這類的欄位有助提升效能. |
key | 將欄位標記成 Index 中 documments 的唯一識別子. 只有一個欄位可以被當做 Key,欄位類型必需是Edm.String . Key 欄位可以直接被用來查詢 documents .可以看 Lookup Document (Azure Search Service REST API) |
retrievable | 設定欄位是否被納入回傳的結果中,key 欄位必需要設成 true . |
analzyer | 設定要用哪一種語言 analyzer.支援的語言清單可以看 Language support (Azure Search Service REST API).這個選項只能用在 searchable 欄位上,而且不能與 searchAnalyzer or indexAnalyzer 同時使用. 設定後不得更改. |
searchAnalyzer | 設定在搜尋時要使用哪一種 analyzer.可用的分析可以看 Custom analyzers in Azure Search. 這個選項只能套用在 searchable 欄位.必需與 indexAnalyzer 同時設定但不得與 analyzer 同時設定. 這個 analyzer 以被套用在既有的欄位上。 |
indexAnalyzer | 設定在建立 index 時要使用哪一種 analyzer.可用的分析可以看 Custom analyzers in Azure Search. 這個選項只能套用在 searchable 欄位.必需與 searchAnalyzer 同時設定但不得與 analyzer 同時設定 . 設定後不得更改. |
1.建立 Azure Search 索引
2.Supported data types (Azure Search)
3.實體資料模型
4.Create Index (Azure Search Service REST API)
5.Lookup Document (Azure Search Service REST API)
6.Language support (Azure Search Service REST API)
7.Custom analyzers in Azure Search